[% setvar title The Perl 6 Summary for the week ending 20031221 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 20031221'></a><h1>The Perl 6 Summary for the week ending 20031221</h1>
<p>Welcome one and all to the penultimate Perl 6 Summary for 2003. The
nights are long, the air is cold, freezing fog made the journey home
from watching <i>The Return of the King</i> a deeply fraught experience
(though probably not as fraught for us as for the chap who obviously
didn't see the roundabout in time and went straight over it).</p>
<p>If you're in the southern hemisphere, feel free to ignore the
foregoing flavour text.</p>
<p>It should come as no surprise to you by now that we start with the
internals list.</p>
<a name='Namespaces II'></a><h2>Namespaces II</h2>
<p>Dan returned from a bout of paying work to finish up the current
understanding of how namespaces are managed in Parrot. A namespace
selector becomes a multidimensional key (using a multidimensional key
instead of a single long namespace name makes for easier sharing of
namespaces between languages; there's no need to go guessing what
separator the other language uses in its namespace naming because
that's essentially irrelevant at the Parrot level). Looking up a
particular variable in a namespace is still a two step process, first
get the namespace, then do the lookup within the namespace. Dan
explained that this is a win because it should allow for holding onto
namespaces in a register when dealing with multiple variables.</p>
<p>Leo T&ouml;tsch wasn't entirely convinced by the new syntax
introduced, and proposed a mechanism which used the standard syntax
for accessing multikeyed structures with a proposed Namespace PMC.</p>
<p><a href='http://groups.google.com/groups?selm=a06010200bc04c88cf33a@' target='_blank'>groups.google.com</a>[10.0.1.2]</p>
<a name='Another keyed ops proposal'></a><h2>Another keyed ops proposal</h2>
<p>Leo continues to make proposals for rethinking keyed ops. Somewhat
surprisingly, Dan didn't entirely reject the latest one involving a
possible new set of key registers.</p>
<p><a href='http://groups.google.com/groups?selm=a06010202bc04d119f44e@' target='_blank'>groups.google.com</a>[10.0.1.2]</p>
<a name='Leo adds threads'></a><h2>Leo adds threads</h2>
<p>Leo T&ouml;tsch checked in a patch to allow Parrot to spawn
threads. As he admitted, there's a lot missing, but it's a start. He
solicited comments and further pointers.</p>
<p>Later in the week he asked for some design decisions related to making
various of the interpreter's internal data structures thread
safe. Elizabeth Mattijsen had several comments to make, based on
experience with Perl 5's ithread system. In essence her suggestion was
that as many things as possible should be made copy on write between
threads. (I have a faint recollection of Nicholas Clark delivering a
wonderful lightning talk/dance explaining his proposal for making Perl
5 use copy on write structures for ithreads. It's worth seeing if you
get the chance...)</p>
<p><a href='http://groups.google.com/groups?selm=3FE0769A.6030008@toetsch.at' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?selm=3FE57146.5070703@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='PDD03 and method calls'></a><h2>PDD03 and method calls</h2>
<p>Leo queried the design of Parrot's calling conventions for calling a
method and proposed a slightly different convention with the object
put in P5 rather than P2. Dan thought that the calling conventions
documented was the right way to go, but didn't seem to convince
everyone.</p>
<p><a href='http://groups.google.com/groups?selm=3FE0CDD1.90403@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Rolling back clone'></a><h2>Rolling back <code>clone</code></h2>
<p>Leo pointed out that <code>clone</code>'s semantics had got altered to take an
uninitialized destination PMC as an argument back when the GC system
was flaky. He suggested switching back to a version that creates the
new PMC itself now that GC was working properly. Dan
told Leo to go for it.</p>
<p><a href='http://groups.google.com/groups?selm=3FE0D1BC.7070305@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<p>Um... sorry about this, but I'm punting on writing the promised
Roles/Traits/Classes summary. I was planning on doing it today, but
things have been hellish; I've spent about 8 hours fighting fires
today rather than writing the summary. Sorry.</p>
<p>Work on Perl 6's object system continues apace though; things are
looking very good and powerful.</p>
<p>By the way from now on I'll try and stick to Larry's usage of
capitalizing 'Traits' when referring back to the Traits paper, and
keeping it lower case when referring to Perl 6's compile-time traits.</p>
<a name='Runtime CHECK?'></a><h2>Runtime CHECK?</h2>
<p>Piers Cawley asked if Perl 6 modules that get loaded at runtime will
have their <code>CHECK</code> blocks (or their equivalent) executed. Larry
initially thought not, but Rafael Garcia-Suarez noted that Perl 5
shouldn't be held up as exemplary and that there was definitely a need
for some kind of special block that would get run at the end of the
compilation phase of any arbitrary compilation unit.</p>
<p><a href='http://groups.google.com/groups?selm=m2iskg8fqo.fsf@obelisk.bofh.org.uk' target='_blank'>groups.google.com</a></p>
<a name='but true'></a><h2><code>but true</code></h2>
<p>Adam D. Lopresto wondered how the recent work on Roles, Properties and
Traits fit in with already declared stuff like <code>but true</code>. Larry
confessed that he was still thinking hard about this, but that he
thought <code>but</code> wasn't powerful enough yet.</p>
<p><a href='http://groups.google.com/groups?selm=Pine.GSO.4.58.0312191028190.24304@clarion.cec.wustl.edu' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements, Apologies'></a><h1>Acknowledgements, Announcements, Apologies</h1>
<p>Cross your fingers and toes, we might have link shortening in this
version. Hurrah!</p>
<p>Merry Christmas everyone.</p>
<p>I make no promises about whether there will be a summary next
week. Nor do I make any promises about whether there'll be a summary
of the year (but I wouldn't hold your breath).</p>
<p>If you find these summaries useful or enjoyable, show your
appreciation by contributing to the Perl Foundation to help support
the ongoing development of Perl. Money and time are both good. I'm
always pleased to get feedback at <i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i> and
traffic at my website.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://www.bofh.org.uk:8080/' target='_blank'>www.bofh.org.uk</a> -- My website, Just a Summary</p>
</div>
